/*
 * @(#)MsgUtil.java 2020年3月24日 下午1:47:36
 * Copyright 2020 zmr, Inc. All rights reserved. 
 * PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.wind.cqboot.utils;

import java.util.List;
import java.util.Map;

import org.jetbrains.annotations.NotNull;

import lombok.extern.slf4j.Slf4j;
import net.lz1998.pbbot.bot.Bot;
import net.lz1998.pbbot.bot.BotPlugin;
import net.lz1998.pbbot.utils.Msg;
import onebot.OnebotBase;
import onebot.OnebotEvent;

/**
 * <p>File：MsgUtil.java</p>
 * <p>Title: </p>
 * <p>Description:</p>
 * <p>Copyright: Copyright (c) 2020 2020年3月24日 下午1:47:36</p>
 * <p>Company: zmrit.com </p>
 * @author zmr
 * @version 1.0
 */
@Slf4j
public class MsgUtil
{
    /**
     * 获取被@的消息内容
     * 
     * @param bot 酷Q消息体
     * @param event 处理前的消息
     * @return 过滤被@的内容的消息
     * @author zmr
     */
    public static String getAtMsg(@NotNull Bot bot,
            @NotNull OnebotEvent.GroupMessageEvent event)
    {
        String text = null;
        boolean isAt = false;
        List<OnebotBase.Message> messageList = event.getMessageList();
        for (OnebotBase.Message msg : messageList)
        {
            if ("at".equals(msg.getType()))
            {
                Map<String, String> dataMap = msg.getDataMap();
                String qq = dataMap.get("qq");
                if (qq.equals(bot.getSelfId() + ""))
                {
                    isAt = true;
                }
            }
            if ("text".equals(msg.getType()))
            {
                text = msg.getDataMap().get("text");
            }
        }
        return isAt ? text : null;
    }

    /**
     * 群里回复指定用户
     * 
     * @param bot 酷Q消息体
     * @param groupId 群号
     * @param userId 用户编号
     * @param msg 回复的消息内容
     * @return 结束插件流转
     * @author zmr
     */
    public static int sendReply(@NotNull Bot bot, long groupId, long userId,
            String msg)
    {
        Msg m = Msg.builder().at(userId).text(msg).sendToGroup(bot, groupId);
        return BotPlugin.MESSAGE_BLOCK;
    }

    /**
     * 发送群语音
     * @param bot
     * @param groupId 群号
     * @param path 语音文件amr地址
     * @return
     * @author zmr
     */
    public static int sendGroupVoiceByPath(@NotNull Bot bot, long groupId,
            String path)
    {
        String msg = "[CQ:record,file=file:///" + path + "]";
        log.info("msg-{}", msg);
        bot.sendGroupMsg(groupId, msg, false);
        return BotPlugin.MESSAGE_BLOCK;
    }

    /**
     * 发送群语音
     * @param bot
     * @param groupId 群号
     * @param url 语音文件amr网络地址
     * @return
     * @author zmr
     */
    public static int sendGroupVoiceByUrl(@NotNull Bot bot, long groupId,
            String url)
    {
        String msg = "[CQ:record,file=" + url + "]";
        log.info("msg-{}", msg);
        bot.sendGroupMsg(groupId, msg, false);
        return BotPlugin.MESSAGE_BLOCK;
    }
}
